package jsd2302.src.io;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.ObjectInputStream;

/**
 * 使用对象的输入流进行对象的反序列化
 * 反序列化：将一组字节还原为Java对象
 */
public class OISDemo {
    public static void main(String[] args) throws IOException, ClassNotFoundException {

       /*
        FileInputStream fis=new FileInputStream("student.obj");
        ObjectInputStream ois=new ObjectInputStream(fis);
        Object obj=ois.readObject();
        Student zs=(Student)obj;
        */
       FileInputStream fis=new FileInputStream("student.obj");
       ObjectInputStream ois=new ObjectInputStream(fis);
       Object obj=ois.readObject();
       Student zs=(Student) obj;
        /**
         * Object readObject():
         * 对象输入流的readObject（）可以进行对象的反序列化
         * 对象输入流通过下面所连接的流来读取字节
         * 必须是对象输出流序列化对象之后的一组字节
         * 说白了：序列化的是学生对象，反序列化出来的也一定是学生对象
         */
        System.out.println(zs);
        ois.close();
    }
}
